# -.- coding: utf-8 -.-

from django import forms
from models import Partida
from fichas.models import Jugador
from django.forms.util import ValidationError, ErrorList
from django.contrib.auth.models import User
from django.utils.translation import ugettext_lazy as _

import re

class DescripcionForm(forms.ModelForm):
    class Meta:
        model = Partida
        fields = ('descripcion',)

    def __init__(self, propietario, partida, data=None, files=None, auto_id='id_%s', prefix=None,
                 initial=None, error_class=ErrorList, label_suffix=':',
                 empty_permitted=False, instance=None):
        print "hola"
        forms.ModelForm.__init__(self,data,files,auto_id,prefix,initial,
                                 error_class,label_suffix,empty_permitted,instance)
        print "nada"
        usr = User.objects.get(username=propietario)
        print "llega aki 1"
        self.master = Jugador.objects.get(jugador=usr)
        print "llega aki 2"
        self.partida = partida
        print "llega aki 3"

    def save(self):
        try:
            f = Partida.objects.get(id=self.partida)
            f.descripcion = self.cleaned_data['descripcion']
            f.save()
            return f.id
        except:
            print "ERROR al modificar la descripcion"
            return None
    

class PartidaForm(forms.ModelForm):
    class Meta:
        model = Partida
        fields = ('titulo','descripcion',)

    def __init__(self, propietario, data=None, files=None, auto_id='id_%s', prefix=None,
                 initial=None, error_class=ErrorList, label_suffix=':',
                 empty_permitted=False, instance=None):
        forms.ModelForm.__init__(self,data,files,auto_id,prefix,initial,
                                 error_class,label_suffix,empty_permitted,instance)
        usr = User.objects.get(username=propietario)
        self.master = Jugador.objects.get(jugador=usr)

    def clean_titulo(self):
        try:
            titulo = self.cleaned_data['titulo']
            tmp = Partida.objects.get(master=self.master,titulo=titulo)
            raise forms.ValidationError (_(u'Ese nombre de partida ya lo estas usando'))
        except Partida.DoesNotExist:
            return self.cleaned_data['titulo']
    
    def save(self):
        try:
            f = Partida()
            f.titulo = self.cleaned_data['titulo']
            f.descripcion = self.cleaned_data['descripcion']
            f.master = self.master
            f.save()
            return f.id
        except:
            print self.save
            return None

    #def save_master(self, master):
    #    try:
    #        usuario = User.objects.get(username=master)
    #        f = Partida()
    #        f.titulo = self.cleaned_data['titulo']
    #        f.master = Jugador.objects.get(jugador=usuario)
    #        f.save()
    #        return f.id
    #    except:
    #        print self.save
    #        return None
